package cn.iocoder.yudao.module.pay.refund.convert;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.module.api.pay.refund.dto.PayRefundCreateDTO;
import cn.iocoder.yudao.module.api.pay.refund.vo.PayRefundVO;
import cn.iocoder.yudao.module.pay.refund.dal.dataobject.PayRefundDO;
import cn.iocoder.yudao.module.pay.refund.vo.PayRefundDetailsRespVO;
import cn.iocoder.yudao.module.pay.refund.vo.PayRefundExcelRespVO;
import cn.iocoder.yudao.module.pay.refund.vo.PayRefundPageItemRespVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface PayRefundConvert {

    PayRefundConvert INSTANCE = Mappers.getMapper(PayRefundConvert.class);


    PayRefundDetailsRespVO convert(PayRefundDO bean);

    PageResult<PayRefundPageItemRespVO> convertPage(PageResult<PayRefundDO> page);

    PayRefundDO convert(PayRefundCreateDTO bean);

    PayRefundVO convertVO(PayRefundDO bean);

    default List<PayRefundExcelRespVO> convertList(List<PayRefundDO> list) {
        return CollectionUtils.convertList(list, this::convertExcel);
    }

    PayRefundExcelRespVO convertExcel(PayRefundDO bean);

}
